1. Field of the Invention
The present invention relates to software execution and more particularly to a system and method of executing software from the Internet.
2. Description of Related Art
The Internet has become part of everyone's life now. At present, almost everything can be accessed online: business, entertainment, sales, music, video, and various social networks. In most cases, a user browses an Internet site, simply clicks a hyperlink to search the web, browse the Internet, listen to music, watch video, chat with others, or connect to a social network. In summary, almost all the activities are already online accessible, however, software using techniques remain in the old-fashioned way.
Traditionally, software packages, by design, cannot be directly launched from the web. For example, in a desktop environment like Windows™ or Mac OS™, before a software can be used, the user has to first download the installation package for the software, then install a copy of the software into his/her local machine. Only after the software package is installed in the local machine can the user see the application icon to click to start the software. Many times, such process is not only time consuming, but also non-trivial for a nontechnical person, so there is a need to allow any person to start, launch or run any software directly from the web without such hassle in the current Internet era.
Most software package come with different types of license which are also part of the reason for installation needs. Traditionally, during software installation, the user of software has to accept a license agreement in order to allow the installer to continue installing the software into the user's local machine. Multiple types of software licenses have been put in use, ranging from freeware, adware, shareware, trial-ware to commercial licenses such as license per user, license per machine or license per company.
However, most existing software licenses, even commercial licenses, cannot accurately reflect the real usage of the product because it is really hard to track the real usage of a software product. In many times, once a software has been installed, the user is able to run it as many times as possible, unless the software installer puts extra efforts to pose some limitation. There is also a need for a generic method and approach to simplify the software license grant process as well as a generic way to accurately charge software product by its true usage.
Even for software that does not need to be installed, such as “green” software, it still need to be packaged into some kind of special bundle or zip file to be easily transferred and downloaded as one file in the Internet. It is the end user who receives the package that need to manually unzip or unpack the package to a local directory of the client's machine in order to use it. This is also not convenient and there is also a need for a generic system and method to automatically download, unzip and launch such software for a user without user intervene.
Furthermore, once a user has used a software once, it is permanently installed into the user's local machine and occupies precious hard disk space. In order to remove the software, the user has to manually start an application manager from control panel, and select the particular software to uninstall. During the process, the user is usually prompted with several questions to confirm and accept the operation. Such task is highly technical and time consuming as well, so there is also a need to automatically manage the software lifecycle in a user's local machine, for instance, to automatically free spaces from unused software when there is lack of space without user's intervene.
Another issue associated with software installation is that some software installers are so aggressive that, once installed, they hook themselves into the system and make them either auto-start during system boot, or hide themselves and become very difficult to be detected by the system, or very hard to be removed from the local machine.
Computer virus, spyware, certain adware, malware or badware may fit into this category. Many of them do not contain uninstallers—once installed, average users have no idea how to remove or uninstall at all without reinstalling the whole system. So, in order to deal with such scenarios, there is a need for a standard method or approach to effectively manage all types of software.
In a LAN environment like corporate network, some software, with special design, can be installed in a common file server so that everyone in the network can share single installed software. This is called networked install. However, in a WAN network environment such as the Internet, this approach has not gain popularity because there are significant differences between WAN and LAN, such as network topology, bandwidth, availability, cost, security and standard.
Traditionally, in order to install software package, all parts of the package need to be downloaded into the user's local machine before installation. However, most big software suites, such as Microsoft Office, may have over hundreds of megabytes to gigabytes in size and contain thousands of features, of which only a small portion may be actually used by a user. Therefore, in order to allow user to use the software as soon as possible, it needs a system and method to start software without downloading all parts of the software.
All in all, traditional software usage and installation processes do not fit well in the current Internet era. Software as a service, or SaaS, with noticeable example of Salesforce™, is a software delivery model where software is hosted in the web server and allows users to use them directly from the browser. SaaS can be used in cloud computing.
However, in order to use the SaaS, software must be re-written completely into a browser-server model so that core parts are run inside the server which provide browser interface for user to access. Traditional or existing desktop software cannot be directly used in the SaaS model. For example, online emails like Hotmail™, Yahoo™ mail are completely different from desktop email client like Outlook™, online office like Google™ docs needs completely re-written.
In order to fully utilize the power of cloud computing and SaaS, client software needs to be turned into a true software-as-a-service.
This application will present generic ways to allow existing software to launch, run and execute directly from the web and to overcome shortcomings of the traditional software installation outlined above.